var _columns =[
	{checkbox: true},
	{field: 'ID', title: '标示符'},
	{title: '序号', field: 'showId',
		formatter:function(value,row,index){
			return index+1;
	}},
    {field: 'USERNAME', title: '用户名'},
    //{field: 'PASSWORD', title: '密码'},
    {field: 'ROLE', title: '用户角色'},
    {field: 'WORKSHOP', title: '所在位置'},
    {field: 'EMAIL', title: '邮箱'},
//    {field: 'COMPANY_NAME', title: '公司名称'}
	]


var _columns__ =[
    {checkbox: true},
    {field: 'ID', title: '标示符'},
    {title: '序号', field: 'showId',
        formatter:function(value,row,index){
            return index+1;
        }},
    {field: 'USERNAME', title: '用户名'},
    {field: 'PASSWORD', title: '密码'},
    {field: 'ROLE', title: '用户角色'},
    {field: 'WORKSHOP', title: '所在位置'},
    {field: 'EMAIL', title: '邮箱'},
]



$('.selectpicker').selectpicker('val', 'mustard');
$('.selectpicker').selectpicker('val', ['mustard', 'relish']);
$('.selectpicker').selectpicker('refresh');


var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#data_table').bootstrapTable({
            url: '/user_control/select-by-companyid',         //请求后台的URL（*）
            method: 'get',                      //请求方式（*）
            toolbar: '#toolbar',                //工具按钮用哪个容器
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "client",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            showColumns: true,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            clickToSelect: true,                //是否启用点击选中行
            uniqueId: "id",                     //每一行的唯一标识，一般为主键列
            sortable: true,                     //是否启用排序
            sortOrder: "desc", 
            columns: _columns,
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            companyId: edit_id,
        };
        return temp;
    };

    return oTableInit;
};


function create_column(csName, enName, value, num) {
    if (typeof(value) == "undefined")
        value = ''
    var pre;
    if(num == 0){
    	pre = "new";
    }else{
    	pre = "edit";
    }
    if(enName == pre+"WORKSHOP"){
    	var result = '<div class="form-group"><label>'+csName + '</label><select  id="'+ enName +'"value="' + value + '" class="form-control selectpicker" data-live-search="true" title="请选择车间名称"></select></div>'
    }else if(enName == pre+"COMPANY_NAME"){
        var result = '<div class="form-group"><label>'+csName + '</label><select  id="'+ enName +'"value="' + value + '" class="form-control selectpicker" data-live-search="true" title="请选择公司名称"></select></div>'
    }else if(enName == pre+"ROLE"){
        var result = '<div class="form-group"><label>'+csName + '</label><select  id="'+ enName +'"value="' + value + '" class="form-control selectpicker" multiple data-actions-box="true" title="请选择角色名称" data-live-search="true"></select></div>'
    }else if(enName == pre+"USERNAME"||enName == pre+"PASSWORD" || enName == pre + "EMAIL"){
    	var result = '<div class="form-group"><label>' + csName + '</label><input class="form-control" placeholder="必填"  id="' + enName + '" value="' + value + '"></div>';
    }else{
    	var result = '<div class="form-group"><label>' + csName + '</label><input class="form-control" placeholder="选填"  id="' + enName + '" value="' + value + '"></div>';
    }
    
    return result;
}




var ButtonInit = function () {
    var oInit = new Object();

    oInit.Init = function () {
        //初始化页面上面的按钮事件
        $("#btn_return").click(function() {
            page_name = "公司管理"
            $('#page-wrapper').load('pages/companys.html');
        })

        //新增按钮
        $("#btn_add").click(function () {
            $('#new_data_body').empty();
            $('#new_data_body').append(create_column("用户名", 'new' + _columns__[3].field, '',0));
            $('#new_data_body').append(create_column("密码", 'new' + _columns__[4].field, '',0));
            //$('#new_data_body').append(create_column("公司名称", 'new' + 'COMPANY_NAME', '',0));
            $('#new_data_body').append(create_column("用户角色", 'new' + _columns__[5].field, '',0));
            // $('#new_data_body').append(create_column("公司名称", 'new' + 'COMPANY_NAME', '',0));
            // $('#new_data_body').append(create_column("公司名称", 'new' + 'COMPANY_NAME', '',0));
            $('#new_data_body').append(create_column("所在位置", 'new' + _columns__[6].field, '',0));
            $('#new_data_body').append(create_column("邮箱", "new" + "EMAIL", '', 0))

            // $.ajax({
            //     type: 'get',
            //     url: '/companys/select',
            //     async: false,
            //     success: function (data) {
            //        for(let i = 0; i < data.rows.length; i++) {
            //            let str = '<option value="' + data.rows[i].companyName + '">' + data.rows[i].companyName + '</option>'
            //            $("#newCOMPANY_NAME").append(str)
            //        }
            //        $("#newCOMPANY_NAME").append('<option value="无">无</option>');
            //        $("#newCOMPANY_NAME").selectpicker('refresh');
            //        $("#newCOMPANY_NAME").selectpicker('render');
            //     }
            // });

            $.ajax({
                type: 'get',
                url: '/roles/select-by-company-id',
                data: {
                    'companyId':edit_id,
                },
                async: false,
                success: function (data) {
//                       console.log(data)
                    for(let i = 0; i < data.rows.length; i++) {
                        let str = '<option value="' + data.rows[i].id + '">' + data.rows[i].roleName + '</option>'
//                           console.log(str)
                        $("#newROLE").append(str)
                    }
                    $("#newROLE").selectpicker('refresh');
                }
            });
            //清除之前缓存数据
            $('#newWORKSHOP').empty();
            //根据公司名称查车间名称
            $.ajax({
                type: 'get',
                url: '/warning_record/queryworkshopByCompanyId',
                data: {
                    'id':edit_id,
                },
                dataType: 'json',
                async: false,
                success: function (data) {
                    for(let i = 0; i < data.length; i++) {
                        let str = '<option value="' + data[i] + '">' + data[i] + '</option>'
                        $("#newWORKSHOP").append(str)
                    }
                    $("#newWORKSHOP").selectpicker('refresh');
                }
            });

            // $('#newCOMPANY_NAME').change(function () {
            //     $('#newROLE').empty();
            //     $.ajax({
            //         type: 'get',
            //         url: '/roles/select-by-company-id',
            //         data: {
            //             'companyId':edit_id,
            //         },
            //         async: false,
            //         success: function (data) {
            //             console.log(data)
            //             for(let i = 0; i < data.rows.length; i++) {
            //                 let str = '<option value="' + data.rows[i].id + '">' + data.rows[i].roleName + '</option>'
            //                 console.log(str)
            //                 $("#newROLE").append(str)
            //             }
            //             $("#newROLE").selectpicker('refresh');
            //         }
            //     });
            //     //清除之前缓存数据
            //     $('#newWORKSHOP').empty();
            //     var company_name = $("#newCOMPANY_NAME").val();
            //     console.log(company_name);
            //     //根据公司名称查车间名称
            //     $.ajax({
            //         type: 'get',
            //         url: '/warning_record/queryworkshopByCompanyName',
            //         data: {
            //                 'companyName':company_name,
            //         },
            //         dataType: 'json',
            //         async: false,
            //         success: function (data) {
            //             for(let i = 0; i < data.length; i++) {
            //                let str = '<option value="' + data[i] + '">' + data[i] + '</option>'
            //                $("#newWORKSHOP").append(str)
            //            }
            //            $("#newWORKSHOP").selectpicker('refresh');
            //         }
            //     });
            // });

             // $.ajax({
             //    type: 'get',
             //    url: '/roles/select',
             //    async: false,
             //    success: function (data) {
             //       for(let i = 0; i < data.rows.length; i++) {
             //           let str = '<option value="' + data.rows[i].id + '">' + data.rows[i].roleName + '</option>'
             //           console.log(str)
             //           $("#newROLE").append(str)
             //       }
             //       $("#newROLE").selectpicker('refresh');
             //    }
             // });

            $("#newPASSWORD").val("123456")
            $('#new_data').modal();
        });


      //编辑按钮
        $("#btn_edit").click(function () {
            var arrselections = $("#data_table").bootstrapTable('getSelections');
            if (arrselections.length > 1) {
                bootoast({
                    message: '只能选择一行进行编辑',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            if (arrselections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }

            $('#edit_data_body').empty();
            $('#edit_data_body').append(create_column("用户名", 'edit' + _columns__[3].field, arrselections[0]["USERNAME"],1));
            $('#edit_data_body').append(create_column("密码", 'edit' + _columns__[4].field, arrselections[0]["PASSWORD"],1));
            $('#edit_data_body').append(create_column("用户角色", 'edit' + _columns__[5].field, arrselections[0]["ROLE"],1));
            //$('#edit_data_body').append(create_column("公司名称", 'edit' + _columns[7].field, arrselections[0]["COMPANY_NAME"],1));
            $('#edit_data_body').append(create_column("所在位置", 'edit' + _columns__[6].field, arrselections[0]["WORKSHOP"],1));
            $('#edit_data_body').append(create_column("邮箱", "edit" + "EMAIL", arrselections["EMAIL"], 1))


            let roles = []
            for (let i = 0; i < arrselections[0]['role'].length; i++) {
                roles.push('' + arrselections[0]['role'][i])
            }

            $("#editROLE").empty()
            $.ajax({
                type: 'get',
                url: '/roles/select-by-company-id',
                data: {
                    'companyId':edit_id,
                },
                async: false,
                success: function (data) {
//                       console.log(data)
                    for(let i = 0; i < data.rows.length; i++) {
                        let str = '<option value="' + data.rows[i].id + '">' + data.rows[i].roleName + '</option>'
//                           console.log(str)
                        $("#editROLE").append(str)
                    }
                    $("#editROLE").val(roles)
                    $("#editROLE").selectpicker('refresh');
                }
            });
            //清除之前缓存数据
            $('#editWORKSHOP').empty();
            //根据公司名称查车间名称
            $.ajax({
                type: 'get',
                url: '/warning_record/queryworkshopByCompanyId',
                data: {
                    'id':edit_id,
                },
                dataType: 'json',
                async: false,
                success: function (data) {
                    for(let i = 0; i < data.length; i++) {
                        let str = '<option value="' + data[i] + '">' + data[i] + '</option>'
                        $("#editWORKSHOP").append(str)
                    }
                    $("#editWORKSHOP").val(arrselections[0]['WORKSHOP'])
                    $("#editWORKSHOP").selectpicker('refresh');
                }
            });
            $("#editEMAIL").val(arrselections[0]['EMAIL'])
            // $.ajax({
            //     type: 'get',
            //     url: '/companys/select',
            //     async: false,
            //     success: function (data) {
            //         for(let i = 0; i < data.rows.length; i++) {
            //             let str = '<option value="' + data.rows[i].companyName + '">' + data.rows[i].companyName + '</option>'
            //             $("#editCOMPANY_NAME").append(str)
            //         }
            //         $("#editCOMPANY_NAME").append('<option value="无">无</option>');
            //         $("#editCOMPANY_NAME").val(arrselections[0]['COMPANY_NAME'])
            //         $("#editCOMPANY_NAME").selectpicker('refresh');
            //         $("#editCOMPANY_NAME").selectpicker('render');
            //     }
            // });
            // $.ajax({
            //     type: 'get',
            //     url: '/warning_record/queryworkshopByCompanyName',
            //     data: {
            //         'companyName':arrselections[0]['COMPANY_NAME'],
            //     },
            //     dataType: 'json',
            //     async: false,
            //     success: function (data) {
            //         console.log(data);
            //         for(let i = 0; i < data.length; i++) {
            //             let str = '<option value="' + data[i] + '">' + data[i] + '</option>'
            //             $("#editWORKSHOP").append(str)
            //         }
            //         $("#editWORKSHOP").val(arrselections[0]['WORKSHOP'])
            //         $("#editWORKSHOP").selectpicker('refresh');
            //     }
            // });
            //
            // $("#editWORKSHOP").selectpicker('refresh');
            //
            // $('#editCOMPANY_NAME').change(function () {
            //     //清除之前缓存数据
            //     $('#editWORKSHOP').empty();
            //     var company_name = $("#editCOMPANY_NAME").val();
            //     //根据公司名称查车间名称
            //     $.ajax({
            //         type: 'get',
            //         url: '/warning_record/queryworkshopByCompanyName',
            //         data: {
            //             'companyName':company_name,
            //         },
            //         dataType: 'json',
            //         async: false,
            //         success: function (data) {
            //             console.log(data);
            //             for(let i = 0; i < data.length; i++) {
            //                 let str = '<option value="' + data[i] + '">' + data[i] + '</option>'
            //                 $("#editWORKSHOP").append(str)
            //             }
            //             $("#editWORKSHOP").selectpicker('refresh');
            //         }
            //     });
            // });

            // $.ajax({
            //     type: 'get',
            //     url: '/roles/select',
            //     async: false,
            //     success: function (data) {
            //         for(let i = 0; i < data.rows.length; i++) {
            //             let str = '<option value="' + data.rows[i].id + '">' + data.rows[i].roleName + '</option>'
            //             console.log(str)
            //             $("#editROLE").append(str)
            //         }
            //         $('#editROLE').val(roles)
            //         $("#editROLE").selectpicker('refresh');
            //     }
            // });



            $('#edit_data').modal()
        });

        //搜索按钮
        $('#btn_search').click(function () {
            $('#search_content').val("");
            $('#search_data').modal();

            //$('#data_table').bootstrapTable('remove', {field: 'companyName', values: str})
        });

        //搜索框提交
        //搜索框内的提交
        $('#search_data_submit').click(function() {
            var ids = [];
            var searchContent = $('#search_content').val();
            var data = $('#data_table').bootstrapTable('getData', false);//获取所有数据
            for(var i = 0; i < data.length; i++) {
                var flag = false;
                for(var prop in data[i]) {
                    if(prop == 'USERNAME' || prop == 'ROLE' || prop == 'WORKSHOP' || prop == 'COMPANY_NAME' || prop == "EMAIL") {
                        if(String(data[i][prop]).indexOf(String(searchContent)) != -1) {
                            //alert(String(data[i][prop]));
                            flag = true;
                            break;
                        }
                    }
                }
                if(!flag) {
                    ids.push(parseInt(data[i]['ID']));
                }
            }
            $('#data_table').bootstrapTable('remove', {'field': 'ID', 'values': ids});
            $('#search_data').modal('hide');
        });
        // $('#search_data_submit').click(function() {
        //     var ids = [];
        //     var searchContent = $('#search_content').val();
        //     var data = $('#data_table').bootstrapTable('getData', false);//获取所有数据
        //     //console.log(data)
        //     for(var i = 0; i < data.length; i++) {
        //         var flag = false;
        //         for(var prop in data[i]) {
        //             console.log(prop)
        //             if(prop == 'USERNAME' || prop == 'ROLE' || prop == 'WORKSHOP' || prop == 'COMPANY_NAME' || prop == "EMAIL") {
        //                 if(String(data[i][prop]).indexOf(String(searchContent)) != -1) {
        //                     //alert(String(data[i][prop]));
        //                     flag = true;
        //                     break;
        //                 }
        //             }
        //         }
        //         if(flag) {
        //             ids.push(parseInt(data[i]['id']));
        //         }
        //     }
        //     $('#data_table').bootstrapTable('remove', {'field': 'id', 'values': ids});
        //     $('#search_data').modal('hide');
        // });

        // 删除按钮
        $("#btn_delete").click(function () {
            var arrselections = $("#data_table").bootstrapTable('getSelections');
            if (arrselections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }

            values=[];
            for(var i=0;i<arrselections.length;i++){
                values.push(arrselections[i].ID);
            }
            values2=[];
            for(var i=0;i<arrselections.length;i++){
                values2.push(arrselections[i].USERNAME);
            }
//               console.log(values)
//               console.log(values2)

            bootbox.confirm({
                message: "确认要删除选择的数据吗？",
                locale: 'zh_CN',
                title: '操作提示',
                callback: function (result) {
                    if (result) {
                        $.ajax({
                            type: "post",
                            url: "/user_control/delete",
                            data: JSON.stringify(values),
                            contentType: "application/json",
                            success: function (data) {
                                if (data['status'] == "success") {
                                    bootoast({
                                        message: '删除成功',
                                        position: 'top',
                                        type: 'success',
                                        timeout: 1.5,
                                    });
                                    $("#data_table").bootstrapTable('refresh');

                                } else {
                                    bootoast({
                                        message: '删除失败\n' + data['msg'],
                                        position: 'top',
                                        type: 'danger',
                                        timeout: 1.5,
                                    });
                                }
                            }
                        });
                    }
                }
            })

        });
        

        //新增框内的提交
        $('#new_data_submit').click(function () {
            //判断密码
            var key = $('#new' + _columns__[4].field).val()
            if (key.length<6){
                bootoast({
                message: '密码长度至少6位\n',
                position: 'top',
                type: 'danger',
                timeout: 2,
                });
                return false;
            }
            var values = []
            for (var i = 3; i < 5; i++){
            	if(fieldIsEmpty($('#new' + _columns__[i].field).val(), _columns__[i].title+'不能为空', '')){return false;}//判断校验
            	values.push($('#new' + _columns__[i].field).val())
            }
            for (var i = 5; i < _columns__.length; i++){
            	values.push($('#new' + _columns__[i].field).val())
            }
            values.push(edit_id)//公司id
            let roles = $('#newROLE').val()
            if(roles) {
                let haha = "fxz"
            }
            else {
                bootoast({
                    message: '请至少选择一种角色',
                    position: 'top',
                    type: 'danger',
                    timeout: 2,
                });
                return
            }
//               console.log(values)
            $.ajax({
                type: "post",
                url: "/user_control/insert",
                data: JSON.stringify(values),
                contentType: "application/json",
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '插入成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });
                        $("#new_data").modal('hide');
                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '插入失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });	
        });
        
        //编辑框内的提交
        $('#edit_data_submit').click(function () {
            //判断密码
            var key = $('#edit' + _columns__[4].field).val()
            if (key.length<6){
               bootoast({
                 message: '密码长度至少6位\n',
                 position: 'top',
                 type: 'danger',
                 timeout: 2,
                 });
                 return false;
            }
            var values = []
            var id = $("#data_table").bootstrapTable('getSelections')[0]['ID'];
            values.push(id)
            let roles = $('#editROLE').val()
            if(roles) {
//                   console.log("正常")
            }
            else {
                bootoast({
                    message: '请至少选择一种角色',
                    position: 'top',
                    type: 'danger',
                    timeout: 2,
                });
                return
            }
            for (var i = 3; i < 5; i++){
            	if(fieldIsEmpty($('#edit' + _columns__[i].field).val(), _columns__[i].title+'不能为空', '')){return false;}//判断校验
            	values.push($('#edit' + _columns__[i].field).val())
            }
            for (var i = 5; i < _columns__.length; i++){
            	values.push($('#edit' + _columns__[i].field).val())
            }
            //console.log(values)
            $.ajax({
                type: "post",
                url: "/user_control/update",
                data: JSON.stringify(values),
                contentType: "application/json",
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '修改成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });
                        $("#edit_data").modal('hide');
                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '修改失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });
            
        });

    };

    return oInit;
};

function hasPermission() {
    queryPermission('权限管理/企业管理/用户管理', '新增', 'btn_add')
    queryPermission('权限管理/企业管理/用户管理', '编辑', 'btn_edit')
    queryPermission('权限管理/企业管理/用户管理', '删除', 'btn_delete')
}

$(function () {

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
    //3.隐藏列
    $('#data_table').bootstrapTable('hideColumn', 'ID');
    hasPermission()
    //$('#data_table').bootstrapTable('hideColumn', 'PASSWORD');

});
